#include <stdio.h>
#include <stdlib.h>


/*
特殊矩阵的压缩存储，

对称矩阵：
策略：只存储主对角线+下三角  （当然还有其他策略）
按照行优先原则将个元素存入一维数组中


三角矩阵：
下三角：除了主对角线和下三角区域，其余元素全部相同
上三角：
存储策略：按行优先将主对角线和下三角区的元素存入一维数组，并在最后存储常量

三对角矩阵(带状矩阵)：
当|i-j|>1,a[i][j]=0
| 1 4 0 0 0 |
| 3 1 9 0 0 |
| 0 4 1 7 0 |
| 0 0 2 1 4 |
| 0 0 0 8 1 |
策略：按行优先，只存储带状部分
一维数组小标k如何映射到i,j
第k+1个元素在第几行？第几列？
前i行共  3(i-1)-1  个元素
前i行共  3i-1      个元素
所以 3(i-1)-1 < k+1 ≤ 3i-1
i ≥ (k+2)/3
i < (k+5)/3
i= (k+2)/3向上取整


稀疏矩阵：非零元素远远少于矩阵元素个数
策略：
顺序存储————三元组<行，列，值>
十字链表法：
struct LNode{
    int i;                       //当前行
    int j;                       //当前列
    ElemType data;               //数据
    struct LNode *nexthang;      //当前行下一个元素
    struct LNode *nextlie;       //当前列下一个元素
}

*/


int main()
{
    printf("\n\n========================================================================\n\n");






    printf("\n\n========================================================================\n\n");
    return 0;
}